import * as dd from 'dingtalk-jsapi';

export class Ddapi {
  //图片预览
  utilPreviewImage(images, image) {
    dd.biz.util.previewImage({
      urls: images, //图片地址列表
      current: image, //当前显示的图片链接
      onSuccess: function (result) {
        /**/
      },
      onFail: function () {}
    })
  }

  //图片上传API
  uploadImage(multiple, maxNum) {
    return new Promise(function (reslove, reject) {
      dd.biz.util.uploadImage({
        compression: true,
        multiple: multiple, //是否多选，默认false
        max: maxNum, //最多可选个数
        onSuccess: function (result) {
          reslove(result)
        },
        onFail: function (err) {
          reject(err)
        }
      })
    })
  }
  //选部门
  selectDept(deptList, multiple) {
    let corpId = sessionStorage.getItem('corpId')
    let agentId = sessionStorage.getItem('agentId')
    console.log(JSON.stringify(corpId), deptList, agentId)
    return new Promise(function (reslove, reject) {
      dd.biz.contact.departmentsPicker({
        title: "设置访问权限", //标题
        corpId: corpId, //企业的corpId
        multiple: multiple || false, //是否多选
        limitTips: "超出了", //超过限定人数返回提示
        maxDepartments: 100, //最大选择部门数量
        pickedDepartments: deptList, //已选部门
        disabledDepartments: [], //不可选部门
        requiredDepartments: [], //必选部门（不可取消选中状态）
        appId: agentId || 158, //微应用的Id
        permissionType: "GLOBAL", //选人权限，目前只有GLOBAL这个参数
        onSuccess: function (result) {
          reslove(result)
          /**
          {
              userCount:1,                              //选择人数
              departmentsCount:1，//选择的部门数量
              departments:[{"id":,"name":"","number":}]//返回已选部门列表，列表中每个对象包含id（部门id）、name（部门名称）、number（部门人数）
          }
          */
        },
        onFail: function (err) {
          reject(err)
          console.log(JSON.stringify(err))
        }
      });

    })
  }
  selectOrg( userList) {
    let corpid = sessionStorage.getItem('corpId')
    let agentId = sessionStorage.getItem('agentId')
    return new Promise(function (reslove, reject) {
      dd.biz.contact.complexPicker({
        title: "选择人员", //标题
        corpId: corpid, //企业的corpId
        multiple: true, //是否多选
        limitTips: "超出了", //超过限定人数返回提示
        maxUsers: 1000, //最大可选人数
        pickedUsers: userList || [], //已选用户
        pickedDepartments: [], //已选部门
        disabledUsers: [], //不可选用户
        // 719664751
        disabledDepartments: [], //不可选部门
        requiredUsers: [], //必选用户（不可取消选中状态）
        requiredDepartments: [], //必选部门（不可取消选中状态）
        appId: agentId, //微应用的Id
        permissionType: "GLOBAL", //可添加权限校验，选人权限，目前只有GLOBAL这个参数
        responseUserOnly: false, //返回人，或者返回人和部门
        startWithDepartmentId: 0, //仅支持0和-1
        onSuccess: function (result) {
          reslove(result)
          /**
          {
              selectedCount:1,                              //选择人数
              users:[{"name":"","avatar":"","userid":""}]，//返回选人的列表，列表中的对象包含name（用户名），avatar（用户头像），emplId（用户工号）三个字段
              departments:[{"id":,"name":"","number":}]//返回已选部门列表，列表中每个对象包含id（部门id）、name（部门名称）、number（部门人数）
          }
          */
        },
        onFail: function (err) {}
      });
    })
  }
  // 选人
  choose(users = []) {
    let corpid = sessionStorage.getItem('corpId')
    
    return new Promise(function (reslove, reject) {
      dd.biz.contact.choose({
        multiple: true, //是否多选：true多选 false单选； 默认true
        users: users, //默认选中的用户列表，员工userid；成功回调中应包含该信息
        corpId: corpid, //企业id
        max: 1500, //人数限制，当multiple为true才生效，可选范围1-1500
        onSuccess: function (data) {
          reslove(data)
          /* data结构
      [{
        "name": "张三", //姓名
        "avatar": "
http://g.alicdn.com/avatar/zhangsan.png
" //头像图片url，可能为空
        "emplId": '0573', //员工userid
       },
       ...
      ]
    */
        },
        onFail: function (err) {}
      });
    })
  }

}

let ddapi = new Ddapi()
export default ddapi
